package cn.yuanqiao.archive.storeRoom.mapper;

import cn.yuanqiao.archive.storeRoom.domain.Grid;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 档案格Mapper接口
 * 
 * @author xy
 * @date 2023-06-20
 */
@Mapper
public interface GridMapper {
    /**
     * 查询档案格
     *
     * @param gridId 档案格主键
     * @return 档案格
     */
    public Grid selectGridByGridId(@Param("gridId")Long gridId, @Param("code")String code);

    /**
     * 查询档案格列表
     *
     * @param grid 档案格
     * @return 档案格集合
     */
    public List<Grid> selectGridList(@Param("grid")Grid grid, @Param("code") String code);

    /**
     * 新增档案格
     *
     * @param grid 档案格
     * @return 结果
     */
    public int insertGrid(Grid grid);

    /**
     * 修改档案格
     *
     * @param grid 档案格
     * @return 结果
     */
    public int updateGrid(Grid grid);

    /**
     * 删除档案格
     *
     * @param gridId 档案格主键
     * @return 结果
     */
    public int deleteGridByGridId(Long gridId);

    /**
     * 批量删除档案格
     *
     * @param gridIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGridByGridIds(Long[] gridIds);

    /**
     * 查看是否上架格子
     *
     * @param shelfId
     * @param code
     * @return
     */
    public int getGridCount(@Param("shelfId") Long shelfId, @Param("code") String code);

    public int deleteGridByShelfId(@Param("shelfId") Long shelfId, @Param("code") String code);

    List<Map<String, Object>> getGrids(@Param("shelfId") Long shelfId, @Param("code") String code);

    public int deleteGridByShelfIds(@Param("shelfIds")Long[] shelfIds, @Param("code") String code);

    public Integer getResidueSpace(@Param("gzId") Long gz_id, @Param("code") String code);

    public List<Map<String, Object>> getDaList(@Param("gzId")Long gzId, @Param("code")String code);

    public List<Map<String, Object>> getFolderList(@Param("gzId")Long gzId, @Param("code")String code);
}
